package Ventanas;


import BaseDeDatos.Datos;
import Clases.Persona;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/*
 * Inicio.java
 *
 * Created on 26/06/2011, 18:32:02
 */
/**
 *
 * @author Franco y Pato
 */
public class jFrmUsuario extends javax.swing.JFrame {
    /**
     * 
     */
    public ArrayList<String> sCmbBox= new ArrayList<String>();
    Thread tempo;
    /**
     * 
     */
    public int iError = 0;
    /**
     * 
     */
    public int iRestante = 0;
    /** Creates new form Inicio */
    @SuppressWarnings("LeakingThisInConstructor")
    public jFrmUsuario() {
        initComponents();
        this.setLocationRelativeTo(this);
    }
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPnlIUsuario = new javax.swing.JPanel();
        jUsuarioLblMensaje = new javax.swing.JLabel();
        jUsuarioTxtPassword = new javax.swing.JPasswordField();
        jUsuarioTxtUsuario = new javax.swing.JTextField();
        jUsuarioLblUsuario = new javax.swing.JLabel();
        jUsuarioLblContrasenia = new javax.swing.JLabel();
        jUsuarioBtnIngresar = new javax.swing.JButton();
        jUsuarioBtnCerrar = new javax.swing.JButton();
        jUsuarioLblIcono = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Bienvenido al sistema de Inventario ITS Villada");
        setResizable(false);

        jPnlIUsuario.setMinimumSize(new java.awt.Dimension(712, 190));

        jUsuarioLblMensaje.setText("Por favor loguese correctamente para ingresar al sistema.");
        jUsuarioLblMensaje.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);

        jUsuarioLblUsuario.setText("Usuario:");

        jUsuarioLblContrasenia.setText("Password:");

        jUsuarioBtnIngresar.setMnemonic('I');
        jUsuarioBtnIngresar.setText("Ingresar");
        jUsuarioBtnIngresar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jUsuarioBtnIngresarActionPerformed(evt);
            }
        });

        jUsuarioBtnCerrar.setMnemonic('C');
        jUsuarioBtnCerrar.setText("Cerrar");
        jUsuarioBtnCerrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jUsuarioBtnCerrarActionPerformed(evt);
            }
        });

        jUsuarioLblIcono.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagenes/Lock.png"))); // NOI18N

        javax.swing.GroupLayout jPnlIUsuarioLayout = new javax.swing.GroupLayout(jPnlIUsuario);
        jPnlIUsuario.setLayout(jPnlIUsuarioLayout);
        jPnlIUsuarioLayout.setHorizontalGroup(
            jPnlIUsuarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPnlIUsuarioLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPnlIUsuarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPnlIUsuarioLayout.createSequentialGroup()
                        .addComponent(jUsuarioBtnCerrar)
                        .addGap(112, 112, 112)
                        .addComponent(jUsuarioBtnIngresar)
                        .addGap(16, 16, 16))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPnlIUsuarioLayout.createSequentialGroup()
                        .addComponent(jUsuarioLblIcono)
                        .addGap(18, 18, 18)
                        .addGroup(jPnlIUsuarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jUsuarioLblUsuario)
                            .addComponent(jUsuarioLblContrasenia))
                        .addGap(23, 23, 23)
                        .addGroup(jPnlIUsuarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jUsuarioTxtPassword, javax.swing.GroupLayout.DEFAULT_SIZE, 500, Short.MAX_VALUE)
                            .addComponent(jUsuarioTxtUsuario, javax.swing.GroupLayout.DEFAULT_SIZE, 500, Short.MAX_VALUE))))
                .addGap(23, 23, 23))
            .addGroup(jPnlIUsuarioLayout.createSequentialGroup()
                .addGap(57, 57, 57)
                .addComponent(jUsuarioLblMensaje)
                .addContainerGap(248, Short.MAX_VALUE))
        );
        jPnlIUsuarioLayout.setVerticalGroup(
            jPnlIUsuarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPnlIUsuarioLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jUsuarioLblMensaje, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPnlIUsuarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPnlIUsuarioLayout.createSequentialGroup()
                        .addGroup(jPnlIUsuarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jUsuarioLblUsuario)
                            .addComponent(jUsuarioTxtUsuario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(jPnlIUsuarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jUsuarioLblContrasenia)
                            .addComponent(jUsuarioTxtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(jPnlIUsuarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jUsuarioBtnIngresar)
                            .addComponent(jUsuarioBtnCerrar)))
                    .addComponent(jUsuarioLblIcono))
                .addContainerGap(18, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPnlIUsuario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPnlIUsuario, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents
    
    private void jUsuarioBtnCerrarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jUsuarioBtnCerrarActionPerformed
        //Cuando se presiona el botón de cerrar la ventana de Inicio de Usuario:
        System.exit(0);//El programa se cierra.
    }//GEN-LAST:event_jUsuarioBtnCerrarActionPerformed

    private void jUsuarioBtnIngresarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jUsuarioBtnIngresarActionPerformed
        //Si se presionó el botón ingresar:
        //Creo un objeto datos para la conección a la base de datos.
        Datos oDatos = new Datos();
        //Creo un objeto persona para verificar el logeo del programa.
        Persona oPersona = new Persona();
        try {
            //Llamo a la función para solicitar los datos del usuario ingresado.
            oPersona = oDatos.getDatosPersona(jUsuarioTxtUsuario.getText());
        } catch (Exception ex) {}
        //Si no existe el usuario:
        if (oPersona.sNombre == null)
        {
            //Comienza el descuento de las varibles para la cantidad de pruebas que
            //se pueden hacer.
            iError++;
            iRestante = 3-iError;
            jUsuarioTxtUsuario.setText("");//Setea el usuario en nada.
            jUsuarioTxtPassword.setText("");//Setea el password en nada.
            if (iRestante != 0)
            {
            //Si quedan intentos:
            //Muestra un mensaje de error.
            JOptionPane.showMessageDialog(this, "Error al ingresar al sistema. "
                    + "\n Por favor asegurese de estar registrado en el sistema."
                    + " \n Intentos restantes :" +iRestante, "Error en el logueo", JOptionPane.ERROR_MESSAGE);
            }
            else
                {
                //Si no quedan más intentos:
                JOptionPane.showMessageDialog(this, "Usted es una persona no autorizada para ingresar al sistema. \n Por favor espere 5 minutos para volver a loguearse.", "Error en el logueo", JOptionPane.ERROR_MESSAGE);    
                    try {
                        Thread.sleep(300000);//Espero por 5 minutos para volver a loguearse.
                    } catch (InterruptedException ex) {
                        Logger.getLogger(jFrmUsuario.class.getName()).log(Level.SEVERE, null, ex);
                    }
                iError = 0;//Vuelve la variable a cero para volver a intentar el ingreso.
                }
            }
        else
        {
            if (new String(jUsuarioTxtPassword.getPassword()).equals(oPersona.sPass))
        {
            //Si el password ingresado y el password de la base de datos son iguales:
            this.dispose();//Cierro al ventana.
            new Main(oPersona).setVisible(true);//Se llama la ventana principal y se le entrega el objeto con todos los datos del usuario ingresado.
        }
            else{
            //Si no son iguales:
            //Comienza el descuento de las varibles para la cantidad de pruebas que
            //se pueden hacer.
            iError++;
            iRestante = 3-iError;
            jUsuarioTxtUsuario.setText("");//Setea el usuario en nada.
            jUsuarioTxtPassword.setText("");//Setea el password en nada.
            if (iRestante != 0)
            {
            //Si quedan intentos por hacer:
            //Muestra un mensaje de error.
            JOptionPane.showMessageDialog(this, "Error al ingresar al sistema. "
                    + "\n Por favor asegurese de estar registrado en el sistema."
                    + " \n Intentos restantes :" +iRestante, "Error en el logueo", JOptionPane.ERROR_MESSAGE);
            }
            else
                {
                //Si no hay más intentos:
                JOptionPane.showMessageDialog(this, "Usted es una persona no autorizada para ingresar al sistema. \n Por favor espere 5 minutos para volver a loguearse.", "Error en el logueo", JOptionPane.ERROR_MESSAGE);    
                    try {
                        Thread.sleep(300000);//Espero por 5 minutos para volver a loguearse.
                    } catch (InterruptedException ex) {
                        Logger.getLogger(jFrmUsuario.class.getName()).log(Level.SEVERE, null, ex);
                    }
                iError = 0;//Vuelve la variable a cero la varible para volver a intentar el loggueo.
                }
            }
        }
    }//GEN-LAST:event_jUsuarioBtnIngresarActionPerformed
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                new jFrmUsuario().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel jPnlIUsuario;
    private javax.swing.JButton jUsuarioBtnCerrar;
    private javax.swing.JButton jUsuarioBtnIngresar;
    private javax.swing.JLabel jUsuarioLblContrasenia;
    private javax.swing.JLabel jUsuarioLblIcono;
    private javax.swing.JLabel jUsuarioLblMensaje;
    private javax.swing.JLabel jUsuarioLblUsuario;
    private javax.swing.JPasswordField jUsuarioTxtPassword;
    private javax.swing.JTextField jUsuarioTxtUsuario;
    // End of variables declaration//GEN-END:variables
}
